package com.hspedu.hspliving.commodity.controller;

import com.aliyun.oss.OSSClient;
import com.hspedu.common.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

import javax.annotation.Resource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

@RestController
@Slf4j
public class TestAliyunController {
    /**
     * 查出所有分类以及子分类，并带有层级关系，api方式
     */
    @RequestMapping("/test")
    public R testUpload() throws FileNotFoundException {
        log.info("test Upload");
        // yourEndpoint 填写 Bucket 所在地域对应的 Endpoint。以华东 1（杭州）为例，Endpoint填写为 https://oss-cn-hangzhou.aliyuncs.com。
        String endpoint = "yourEndpoint";
        // 阿里云账号 AccessKey 拥有所有 API 的访问权限，风险很高。强烈建议您创建并使用 RAM韩顺平 Java 工程师用户进行 API 访问或日常运维，请登录 RAM 控制台创建 RAM 用户。
        String accessKeyId = "yourAccessKeyId";
        String accessKeySecret = "yourAccessKeySecret";
        // 创建 OSSClient 实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 填写本地文件的完整路径。如果未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件流。
        InputStream inputStream = new FileInputStream("D:\\localpath\\examplefile.txt");
        // 依 次 填 写 Bucket 名 称 （ 例 如 examplebucket ） 和 Object 完 整 路 径 （ 例 如exampledir/exampleobject.txt）。Object 完整路径中不能包含 Bucket 名称。
        ossClient.putObject("examplebucket", "exampledir/exampleobject.txt", inputStream);
        // 关闭 OSSClient。
        ossClient.shutdown();
        return null;
    }

//    @Resource
//    private OSSClient ossClient;
//    //使用spring cloud alibaba 方式上传
//    @RequestMapping("/test2")
//    public R testUpload2() throws FileNotFoundException {
//        log.info("test Upload2");
//        InputStream inputStream =
//                new FileInputStream("C:\\Users\\Administrator\\Pictures\\SavedPictures\\2.jpg");
//        ossClient.putObject("hspliving-10000", "2.jpg", inputStream);
//        ossClient.shutdown();
//        System.out.println("上传 ok~");
//        return null;
//    }

}
